Python爬虫:验证码识别(图片链接和图片base64字符串) |
您所在的位置:网站首页 › python 获取验证码图片 › Python爬虫:验证码识别(图片链接和图片base64字符串) |
目录
0x00 写在前面0x01 验证码src里有图片的base64加密字符串0x02 验证码src中是动态的图片链接0x03 总结
0x00 写在前面
爬取数据,自动化的验证码验证是绕不开的,当然,验证码的自动识别其实都是调用其他api,在这里把这几天学习遇到过的验证码识别总结一下 0x01 验证码src里有图片的base64加密字符串话不多说先上图
其中,在base64,后的是加密的字符串,我们把它解密就可以得到
接下来的任务就简单了,我们只需要定位到浏览器中的验证码的位置就可以了,这里采用selenium进行定位,再用re截取加密部分的字符串,发送给api,得到对应验证码后再用sendkeys写入 from selenium import webdriver driver = Chrome() driver.get('验证码所在网址') cjy = Chaojiying_Client('超级鹰帐号', '超级鹰密码', '超级鹰软件号') #这里的cjy是外部导入的连接超级鹰api的库 img = driver.find_element_by_class_name('getCaptcha').get_attribute('src') #获得src的内容 print(img) b64 = re.findall(r'data:image/png;base64,(.*)', img)[0]#用正则截取加密字符串 print(b64) dic = cjy.PostBase64(b64, 1902)#向超级鹰接口发送消息并接收返回数据 print(dic) driver.find_element_by_id('imgCaptcha').send_keys(dic['pic_str'])#向网页的对应位置写入获得的验证码【这里截取的是自动登录的部分代码,下篇上完整代码】 0x02 验证码src中是动态的图片链接这种验证码就比较麻烦了,这类链接通常你再次点开得到的图片跟你浏览器中加载出来的原图片不一样,也就是说,我们通过定位得到src链接后,再打开链接,得到的并不是我们想要的验证码图片。只有用魔法才能打败魔法,我们也得换一种方式来获取验证码——截图。 先上一个案例,网址如下: https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx 验证码主要还是要靠selenium来配合识别,所以还是要多学习学习selenium的相关知识 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |